Mapping engine configurations with task managed workflows and grid user interfaces

ABSTRACT

Systems and methods are related to maintaining a workflow of tasks in conjunction with data of the workflow. For example, a method includes generating a budget plan for a plurality of budgets using a template. The method includes generating a plurality of tasks for a plurality of budget owners. Each task is associated with a respective budget and each task is assigned to a respective budget owner. The plurality of tasks are each used to manage progress towards approving the budget plan and to organize work associated with each of the budget owners. The method includes submitting one or more budgets of the plurality of budgets in the budget plan for approval, receiving approval, and displaying a summary based at least in part on the budgets.

CROSS-REFERENCE TO RELATED APPLICATION

This Application claims priority to and the benefit of U.S. ProvisionalApplication No. 62/568,087, entitled “PLATFORM COMPUTING ENVIRONMENT ANDFUNCTIONALITY THEREOF, filed Oct. 4, 2017, which is herein incorporatedby reference.

BACKGROUND

This section is intended to introduce the reader to various aspects ofart that may be related to aspects of the present disclosure, which aredescribed and/or claimed below. This discussion is believed to behelpful in providing the reader with background information tofacilitate a better understanding of the various aspects of the presentdisclosure. Accordingly, it should be understood that these statementsare to be read in this light, and not as admissions of prior art.

Many organizations allocate resources, including financial assets, usingspreadsheets. For example, budgets may provide an estimate of howresources are allocated in an organization. As organizations get bigger,spreadsheets developed for such purposes may become larger and morecomplex. For example, additional tabs may be used for different parts ofthe aspects of resource allocation. Further, due to the complexity ofthe spreadsheets, the spreadsheets may be prone to errors and/ordifficult to update.

SUMMARY

A summary of certain embodiments disclosed herein is set forth below. Itshould be understood that these aspects are presented merely to providethe reader with a brief summary of these certain embodiments and thatthese aspects are not intended to limit the scope of this disclosure.Indeed, this disclosure may encompass a variety of aspects that may notbe set forth below.

Systems and methods described below are related to a collaborationsystem that maintains data while facilitating communication andcompletion of tasks related to the data. For example, in an assetmanagement context such spreadsheets may be prone to errors due to theirsize and complexity. The present the collaboration system may provide away to maintain data in a way that reduces errors while providing way tomanage tasks within a collaborative process, such as a budgetingprocesses.

In some embodiments, a processor is operatively coupled to a memory. Theprocessor may carry out instructions stored in the memory. In oneexample of a useful implementation, the processor may executeinstructions stored in the memory to generate, using a supervisingaccount, an primary plan that affects or controls aspects of othersubordinate plane, such as budget plan for one or more budgets. In suchan example, the budget plan may be a template that defines one or moreparameters of each of the budgets, such as budget organization, estimatetotals associated with the budgets, costs of items associated with thebudgets, or any other relevant budget data for each given budget. Thetemplate may describe a plan of how each budget of the budget plan is tobe organized. For example, the template may set default budget amountsfor each of the plurality of budgets. For instance, if a budget ownerhas a budget for a software that has licenses that cost a certain amountper year, the budget template can provide an entry for the softwarelicenses and an expected cost associated with the license. As anotherexample, if an hourly or daily service is associated with a givenbudget, an item that has an hourly or daily entry for charges may beincluded to allow the budgeter to estimate a number of hours for theservice to be charged. If less is known than specific items, thetemplate may include item fields for certain budgets to allow additionalbudget information to be entered, as well as cost for each of those lineitems. The supervising account may refer to an account that manages thebudget plan overall.

The processor may generate a task for each budget, assigned to eachbudget owner, in the budget plan. The tasks are used to manage progresstowards approving the budgets and to organize work associated with eachof the budget owners. Upon generating the tasks, the processor maysubmit a budget to the supervising account.

By assigning a task to each respective budget owner, the task may beincluded in a general list of tasks not specific to budgeting. That is,a budget owner may, in addition to the task to complete the budget,perform other tasks from the list of tasks. Upon generating the tasksfor each of the budgets, the budget owner may prepare the budget basedon where the budgeting task is prioritized in the general list of tasks.

Further, the tasks generated for each of the budgets may be used totrack and manage progress of the budget plan. For example, thecollaboration system may display progression of each budget as thebudgets are rejected, revised, and approved. That is, each budget ownermay submit a respective budget to the supervising account. Uponreceiving the submitted budget, the supervising account may approve,reject, request clarification regarding the budget, or the like. Uponapproval of budgets in the budget plan, the collaboration system maygenerate a financial summary based on the approved budgets.

Additionally and/or alternatively, the collaboration system allows forforecasting of data. For example, the collaboration system may use acost model to forecast budget data for future years based on priorforecasts and/or prior budget results. For instance, if a particularbudget typically comes in underestimating a certain cost and thebudgeter provides similar cost estimates each year, the forecast maypredict further underestimation of the cost.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of this disclosure may be better understood upon readingthe following detailed description and upon reference to the drawings inwhich:

FIG. 1 is a block diagram of a distributed computing system used inperforming a release, in accordance with aspects of the presentdisclosure;

FIG. 2 is a block diagram of a computing device in the distributedcomputing system of FIG. 1, in accordance with aspects of the presentdisclosure;

FIG. 3 is a flow diagram of a method to maintain a budget plan performedby one or more computing devices in the distributed computing system ofFIG. 1, in accordance with aspects of the present disclosure;

FIG. 4 is an example of a screenshot displaying a user interface thatshows a list of tasks associated with the budget plan, in accordancewith aspects of the present disclosure;

FIG. 5 is an example of a screenshot displaying a user interface thatshows progression of tasks to complete in the budget plan, in accordancewith aspects of the present disclosure;

FIG. 6 is an example of a flow diagram of a method to forecast budgetinformation based on previous budgets, in accordance with aspects of thepresent disclosure; and

FIG. 7 is an example of a screenshot displaying a user interface thatshows a financial summary based on the budget plan, in accordance withaspects of the present disclosure.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

One or more specific embodiments will be described below. In an effortto provide a concise description of these embodiments, not all featuresof an actual implementation are described in the specification. Itshould be appreciated that in the development of any such actualimplementation, as in any engineering or design project, numerousimplementation-specific decisions must be made to achieve thedevelopers' specific goals, such as compliance with system-related andbusiness-related constraints, which may vary from one implementation toanother. Moreover, it should be appreciated that such a developmenteffort might be complex and time consuming, but would nevertheless be aroutine undertaking of design, fabrication, and manufacture for those ofordinary skill having the benefit of this disclosure.

By way of introduction FIG. 1 is a block diagram of a system 100 thatutilizes a distributed computing framework, which may perform one ormore of the techniques described herein. As illustrated in FIG. 1, aclient 102 communicates with a cloud service 104 over a communicationchannel 106. The client 102 may include any suitable computing system.For instance, the client 102 may include one or more computing devices,such as a mobile phone, a tablet computer, a laptop computer, a notebookcomputer, a desktop computer, or any other suitable computing device orcombination of computing devices. The client 102 may include clientapplication programs running on the computing devices. The client 102can be implemented using a single physical unit or a combination ofphysical units (e.g., distributed computing) running one or more clientapplication programs. Furthermore, in some embodiments, a singlephysical unit (e.g., server) may run multiple client applicationprograms simultaneously.

The cloud service 104 may include any suitable number of computingdevices (e.g., computers) in one or more locations that are connectedtogether using one or more networks. For instance, the cloud service 104may include various computers acting as servers in datacenters at one ormore geographic locations where the computers communicate using networkand/or Internet connections. The communication channel 106 may includeany suitable communication mechanism for electronic communicationbetween the client 102 and the cloud service 104. The communicationchannel 106 may incorporate local area networks (LANs), wide areanetworks (WANs), virtual private networks (VPNs), cellular networks(e.g., long term evolution networks), and/or other network types fortransferring data between the client 102 and the cloud service 104. Forexample, the communication channel 106 may include an Internetconnection when the client 102 is not on a local network common with thecloud service 104. Additionally or alternatively, the communicationchannel 106 may include network connection sections when the client andthe cloud service 104 are on different networks or entirely usingnetwork connections when the client 102 and the cloud service 104 sharea common network. Although only a single client 102 is shown connectedto the cloud service 104, it should be noted that cloud service 104 mayconnect to multiple clients (e.g., tens, hundreds, or thousands ofclients).

Through the cloud service 104, the client 102 may connect to variousdevices with various functionality, such as gateways, routers, loadbalancers, databases, application servers running application programson one or more nodes, or other devices that may be accessed via thecloud service 104. For example, the client 102 may connect to anapplication server 107A and/or one or more databases 108A via the cloudservice 104. The application server 107A may include any computingsystem, such as a desktop computer, laptop computer, server computer,and/or any other computing device capable of providing functionalityfrom an application program to the client 102. The application server107A may include one or more application nodes running applicationprograms whose functionality is provided to the client via the cloudservice 104. The application nodes may be implemented using processingthreads, virtual machine instantiations, or other computing features ofthe application server 107A. Moreover, the application nodes may store,evaluate, or retrieve data from the databases 108A and/or a databaseserver.

The databases 108A may contain a series of tables or records containinginformation about assets and services controlled by a client 102 and theconfigurations of these assets and services. The assets and servicesinclude may include hardware resources (such as server computingdevices, client computing devices, processors, memory, storage devices,networking devices, or power supplies); software resources (such asinstructions executable by the hardware resources including applicationsoftware or firmware); virtual resources (such as virtual machines orvirtual storage devices); and/or storage constructs (such as data files,data directories, or storage models).

In some embodiments, the databases 108A, whether in the cloud or at aclient site accessible via the cloud or other network interconnection,may include information related to activity sets for certain personnelto perform. The databases 108A may each be associated with one or moredepartments of an enterprise. That is, an enterprise or organization mayinclude a number of different departments that perform differentoperations for the overall enterprise. For instance, an IT departmentmay assist in connecting information technology (IT) devices, softwareor applications, or virtualized environments for a member (e.g.,employee) of the enterprise, human resources department may assist inhiring the member, and a facilities department may assist in providingaccess to various building associated with the member.

In addition to the databases 108A, the cloud service 104 may include oneor more other database servers. The database servers are configured tostore, manage, or otherwise provide data for delivering services to theclient 102 over the communication channel 106. The database server mayinclude one or more additional databases that are accessible by theapplication server 107A, the client 102, and/or other devices externalto the additional databases. By way of example, the additional databasesmay include information related to member or assets of the enterprise.In some embodiments, the information regarding each member may beorganized or stored a respective database of the databases 108A based ona department in which the member is assigned to. The information mayinclude data regarding the member such as skill set, educationbackground, role, job function, assigned activities or tasks, location,demographic information, and the like.

In the depicted topology, access to non-cloud resources, such asdatabase 108B and/or application server 107B, from the cloud service 104is enabled via a management, instrumentation, and discovery (MID) server126 via an External Communications Channel (ECC) Queue 128. The MIDserver 126 may include an application program (e.g., Java application)that runs as a service (e.g., Windows service or UNIX daemon) thatfacilitates communication and movement of data between the cloud service104 and external applications, data sources, and/or services. The MIDservice 126 may be executed using a computing device (e.g., server orcomputer) on the network 112 that communicates with the cloud service104.

The ECC queue 128 may be a database table that is typically queried,updated, and inserted into by other systems. Each record in the ECCqueue 128 is a message from an instance in the cloud service 104 to asystem (e.g., MID server 126) external to the cloud service 104 thatconnects to the cloud service 104 or a specific instance running in thecloud service 104 or a message to the instance from the external system.The fields of an ECC queue 128 record include various data about theexternal system or the message in the record.

Although the system 100 is described as having the application servers107A, the databases 108A, the ECC queue 128, the MID server 126, and thelike, it should be noted that the embodiments disclosed herein are notlimited to the components described as being part of the system 100.Indeed, the components depicted in FIG. 1 are merely provided as examplecomponents and the system 100 should not be limited to the componentsdescribed herein. Instead, it should be noted that other types of serversystems may communicate with the cloud service 104 in addition to theMID server 126.

Further, it should be noted that server systems described herein maycommunicate with each other via a number of suitable communicationprotocols, such as via wired communication networks, wirelesscommunication networks, and the like. In the same manner, the client 102may communicate with a number of server systems via a suitablecommunication network without interfacing its communication via thecloud service 104.

In addition, methods for populating the databases 108A may includedirectly importing data or entries from an external source, manualimport by users entering or updating data entries via a user interface,and the like. Moreover, it should be understood that the embodimentsdescribed herein should not be limited to being performed with respectto a particular database or type of stored data. Instead, the presentsystems and techniques described herein may be implemented with anysuitable database.

In any case, to perform one or more of the operations described herein,the client 102, the application server 107A, the MID server 126, andother server or computing system described herein may include one ormore of the computer components depicted in FIG. 2. FIG. 2 generallyillustrates a block diagram of example components of a computing device200 and their potential interconnections or communication paths, such asalong one or more busses. As briefly mentioned above, the computingdevice 200 may be an embodiment of the client 102, the applicationserver 107A, a database server (e.g., databases 108A), other servers orprocessor-based hardware devices present in the cloud service 104 (e.g.,server hosting the ECC queue 128) or at a local or remote client site, adevice running the MID server 126, and so forth. As previously noted,these devices may include a computing system that includes multiplecomputing devices and/or a single computing device, such as a mobilephone, a tablet computer, a laptop computer, a notebook computer, adesktop computer, a server computer, and/or other suitable computingdevices.

As illustrated, the computing device 200 may include various hardwarecomponents. For example, the device includes one or more processors 202,one or more busses 204, memory 206, input structures 208, a power source210, a network interface 212, a user interface 214, and/or othercomputer components useful in performing the functions described herein.

The one or more processors 202 may include processor capable ofperforming instructions stored in the memory 206. For example, the oneor more processors may include microprocessors, system on a chips(SoCs), or any other performing functions by executing instructionsstored in the memory 206. Additionally or alternatively, the one or moreprocessors 202 may include application-specific integrated circuits(ASICs), field-programmable gate arrays (FPGAs), and/or other devicesdesigned to perform some or all of the functions discussed hereinwithout calling instructions from the memory 206. Moreover, thefunctions of the one or more processors 202 may be distributed acrossmultiple processors in a single physical device or in multipleprocessors in more than one physical device. The one or more processors202 may also include specialized processors, such as agraphics-processing unit (GPU).

The one or more busses 204 include suitable electrical channels toprovide data and/or power between the various components of thecomputing device. For example, the one or more busses 204 may include apower bus from the power source 210 to the various components of thecomputing device. Additionally, in some embodiments, the one or morebusses 204 may include a dedicated bus among the one or more processors202 and/or the memory 206.

The memory 206 may include any tangible, non-transitory, andcomputer-readable storage media. For example, the memory 206 may includevolatile memory, non-volatile memory, or any combination thereof. Forinstance, the memory 206 may include read-only memory (ROM), randomlyaccessible memory (RAM), disk drives, solid state drives, external flashmemory, or any combination thereof. Although shown as a single block inFIG. 2, the memory 206 can be implemented using multiple physical unitsin one or more physical locations. The one or more processor 202accesses data in the memory 206 via the one or more busses 204.

The input structures 208 provide structures to input data and/orcommands to the one or more processor 202. For example, the inputstructures 208 include a positional input device, such as a mouse,touchpad, touchscreen, and/or the like. The input structures 208 mayalso include a manual input, such as a keyboard and the like. Theseinput structures 208 may be used to input data and/or commands to theone or more processors 202 via the one or more busses 204. The inputstructures 208 may alternative or additionally include other inputdevices.

The power source 210 can be any suitable source for power of the variouscomponents of the computing device 200. For example, the power source210 may include line power and/or a battery source to provide power tothe various components of the computing device 200 via the one or morebusses 204.

The network interface 212 is also coupled to the processor 202 via theone or more busses 204. The network interface 212 includes one or moretransceivers capable of communicating with other devices over one ormore networks (e.g., the communication channel 106). The networkinterface may provide a wired network interface, such as Ethernet, or awireless network interface, such an 802.11, Bluetooth, cellular (e.g.,LTE), or other wireless connections. Moreover, the computing device 200may communicate with other devices via the network interface 212 usingone or more network protocols, such as Transmission ControlProtocol/Internet Protocol (TCP/IP), power line communication (PLC),Wi-Fi, infrared, and/or other suitable protocols.

A user interface 214 may include a display that is configured to displayimages transferred to it from the one or more processors 202. Inaddition and/or alternative to the display, the user interface 214 mayinclude other devices for interfacing with a user. For example, the userinterface 214 may include lights (e.g., LEDs), speakers, and the like.

The systems and methods below may be performed on the one or moreprocessors 202 of one or more computing devices 200 of the client 102,the platform 104, or any suitable combination. As mentioned above,spreadsheet applications have frequently been used to apply variousformulas and to organize data, such as financial data. However, thesespreadsheet applications do not easily allow for cooperation betweendifferent users, tend to be error-prone, and do not provide a way tomanage the workflow to complete the spreadsheet. As such, acollaboration system that provides users a task managed workflow tomaintain data is described below. While financial processes are used asan example below, the collaboration system may be used in any suitablecontext in which data manipulation also involves a workflow. Workflowrefers to a sequence of steps that work passes through. For example,some organizations have budget owners who pass work, such as a budget,to an IT finance group for approval or rejection. If the budget isapproved, then IT finance incorporates the budget into the results, andif the budget is rejected, then the work passes back to the budgetowner. Due to passing work back and forth, it is desirable to maintainthe workflow of tasks to be accomplished to complete the budget as wellas the data included in each budget. By controlling both the workflowand the data, the processor 202 may reduce errors in updating the dataand passing the data throughout the workflow.

FIG. 3 is a flow diagram of a streamlined process 300 performed by theprocessor 202 between two users of the collaboration system that reducesthe difficulties related to using spreadsheets. In the illustratedembodiment, the processor 202 controls the workflow of the streamlinedprocess 202 between IT finance 302 (e.g., a supervising account), andone or more budget owners 304 (e.g., secondary accounts). For example,the processor 202 may receive a design template from IT finance 302 thatoutlines a plan of goals for each of the one or more budget owners 304(block 306). In some embodiments, the design template may providegeneral guidance, such as amounts for each of the budget owners 304 toplan around, or more specific guidance, such as line items expected tobe included in budgets.

The processor 202 may then generate a task for each budget owner 304. Atask may refer to work for the budget owner 304 to complete. Forinstance, the processor 202 may generate a task indicating work to bedone on a budget associated with the budget owner 304.

The processor 202 may send each task to each respective budget owner 304(diamond 308). For example, the processor 202 may notify the budgetowner 304 of the task via email, text message, a pop-up notification, orthe like. The task may then be included a list of tasks associated withthe budget owner 304. For example, tasks may be any sort of work to bedone by budget owners 304, such as creating plans, completing variousbudgets, or the like. The processor 202 may maintain a status associatedwith the task of whether the budget is drafted, published, pending,revised, or approved. Further, the processor 202 may maintain the listof tasks associated with the budget owner 304. That is, the status ofeach task may be used to manage progress towards approving the budgetand to organize work associated with the budget owner 304.

The budget owner 304 may receive the budget based on the budget planfrom the template (block 310). The processor 202 may receive inputs fromthe budget owner 304 to enter budget information for the budget. Thebudget information may include various financial data to be entered bythe budget owner 304. For example, the budget owner 304 may provideinputs to indicate that the budget owner 304 anticipates costs of acertain amount for a software license. The processor 202 may then submitthe budget based on the inputs provided by the budget owner 304 (block314). IT finance 302 may then approve or reject the budget (block 316).The processor 202 may update the status associated with the task basedon whether the budget is approved or rejected. If IT finance 302determines that revisions are desired, the processor 202 may send anotification to the budget owner 304 to make the desired revisions.Accordingly, the budget owner 304 may then revise and update the budget(block 318).

FIG. 4 is an example of a screenshot of a user interface 350 of a list352 of tasks being monitored by the processor 202. The list 352 includeseach task that was created according to a budget template. In theillustrated embodiment, each task is assigned to a respective task ownerand assigned a status of “draft”. Further, the budget template includesan amount of expected costs associated with each respective budget. Forexample, upon selection of a budget template, the processor 202 maygenerate the list 352 of tasks and assign a first task 354 to a firstbudget owner at a first amount. The processor 202 may assign a secondtask 356 to a second budget owner at a second amount. Further, ITfinance 302 may make adjustments to each of the budgets from the budgettemplate such that the list 352 of tasks matches the desiredcharacteristics of the budget plan. That is, the processor 202 maygenerate tasks according to the budget template and allow IT finance 302to make adjustments to the tasks prior to pushing each task to therespective budget owner 304 (e.g., changing the status of the task from“draft” to “pending”. By allowing adjustments to the tasks, each budgetplan may be customized based on seasonal, yearly, or other market data.Upon receiving an input 358 from IT finance 302, the processor 202 maypublish, send, or otherwise push each of the tasks in the list 352 tothe respective budget owners 304.

FIG. 5 is an example of a screenshot of a user interface 380 thatincludes a grid view 372 of each of the tasks as the budget progresses.The processor 202 may display the grid view 372 with tasks according tothe status of the task. For example, the processor 202 may display tasksin a published column 374, pending column 376, revised column 378, andapproved column 380 depending on the status of the task. In someembodiments, a column of drafts may be included as well. As the statusof each task changes, the processor 202 may maintain the list to allowIT finance 302 to track progress of the tasks throughout completion ofthe budget. For example, the processor 202 may display a task in thepublished column 374 when the tasks are initially sent to the budgetowners 304. The processor 202 may then move the task to the pendingcolumn 376 when the budget owner 304 completes the budget and the budgetowner 304 is awaiting for approval or rejection of the budget. If thebudget is rejected, the processor 202 may display the task in the revisecolumn 378, and if the budget is approved, the processor 202 may displaythe task in the approved column 380.

As mentioned above, in an organization, there may be a technical problemassociated with using multiple spreadsheets to maintain and share data.For example, using multiple spreadsheets across multiple users may causeerrors or increase complexity of completing aspects in a workflow. Thesetechnical problems are addressed by tracking both the data as well asthe tasks associated with the users of the data through the workflow. Bygenerating and maintaining the status of each of the tasks associatedwith the users as well as by maintaining the data, the likelihood oferrors is reduced and the complexity of maintaining the data is reduced.In the illustrated example, the processor 202 may track the tasks of thebudget as time progresses as well as maintain the budget data. Trackingthe tasks may allow IT finance 302 to notify appropriate parties (e.g.,late budget owners) of potential delays in forming the budget. Further,the processor 202 may also limit control (e.g., permissions) of a budgetowner 304 to edit his/her respective budget, thereby reducing potentialerrors caused by the budget owner 304 editing the budget of anotherbudget owner. Moreover, by tracking the data over several periods, theprocessor 202 may provide forecasting regarding the data. With respectto budgeting, for example, the processor 202 may provide forecastsregarding future budgets based on previous budgets.

FIG. 6 is a flow diagram of a process 400 performed by the processor 202to generate forecast information based on previous budget information.The processor 202 may receive data regarding one or more previousbudgets (block 402). For example, over time, the processor 202 may trackbudgets as the budgets are entered into the system. The processor 202may then determine forecast information of a new budget based on theprevious budgets (block 404). For instance, the processor 202 maydetermine that a particular budget owner 304 has certain entries withinhis or her budget which tend to be underestimated, then the processor202 may predict that these entries are underestimated and forecast ahigher amount for the entries. In some embodiments, the forecast may begenerated using machine learning, a cost model or mapping engine, or thelike. The processor 202 may utilize one or more sets of equations,seasonal information, yearly information, previous budget information,budget owner information, or any other suitable information to determinethe forecast. The processor 202 may then provide the forecastinformation regarding the new budget (block 406). By the processor 202providing forecasting information regarding new budgets, IT finance 302may adjust the budget plan to account for variations that may not beotherwise discernable to IT finance 302.

The processor 202 may display a summary based at least in part upon thebudgets. FIG. 7 is an example of a screenshot of a user interface 410 ofa financial summary based on previous budgets and each of the approvedand/or pending budgets. In the illustrated embodiment, the processor 202may display a first column 412 related to previous spending and currentspending, a second column 414 related to changes between each year, anda third column 416 of approved budgets compared to pending budgets.While the three columns are shown in FIG. 7, these are meant to beillustrative, and any suitable summary information may be shown.Further, the summary information may be customizable based on theorganization and preferences.

The specific embodiments described above have been shown by way ofexample, and it should be understood that these embodiments may besusceptible to various modifications and alternative forms. It should befurther understood that the claims are not intended to be limited to theparticular forms disclosed, but rather to cover all modifications,equivalents, and alternatives falling within the spirit and scope ofthis disclosure.

The techniques presented and claimed herein are referenced and appliedto material objects and concrete examples of a practical nature thatdemonstrably improve the present technical field and, as such, are notabstract, intangible or purely theoretical. Further, if any claimsappended to the end of this specification contain one or more elementsdesignated as “means for [perform]ing [a function] . . . ” or “step for[perform]ing [a function] . . . ”, it is intended that such elements areto be interpreted under 35 U.S.C. 112(f). However, for any claimscontaining elements designated in any other manner, it is intended thatsuch elements are not to be interpreted under 35 U.S.C. 112(f).

What is claimed is:
 1. A system, comprising: a non-transitory memory;one or more hardware processors configured to execute instructions fromthe non-transitory memory to cause the system to perform operationscomprising: generating a budget plan for a plurality of budgets;generating a plurality of tasks for a plurality of budget owners,wherein each task is associated with a respective budget and each taskis assigned to a respective budget owner, wherein the plurality of tasksare each used to manage progress towards approving the budget plan andto organize work associated with each of the budget owners; submittingone or more budgets in the budget plan; receiving approval one or morebudgets in the budget plan; and displaying a summary based at least inpart upon each budget of the plurality of budgets.
 2. The system ofclaim 1, wherein the one or more hardware processors is configured toexecute instructions from the non-transitory memory to performoperations comprising generating the budget plan via a first device, anddisplaying the summary via a second device, wherein the first devicecomprises a mid server and the second device comprises a local computingdevice.
 3. The system of claim 1, wherein the one or more hardwareprocessors is configured to execute instructions from the non-transitorymemory to perform operations comprising forecasting financialinformation based on each approved budget of the plurality of budgetaccounts.
 4. The system of claim 1, wherein the one or more hardwareprocessors is configured to execute instructions from the non-transitorymemory to perform operations comprising maintaining a status of eachtask of the budget plan.
 5. The system of claim 4, wherein the statuscomprises a published state, a pending state, a revised state, and anapproved state.
 6. The system of claim 4, wherein the one or morehardware processors is configured to execute instructions from thenon-transitory memory to perform operations comprising updating thestatus upon submitting the respective budget, updating the status uponapproving the respective budget, updating the status upon rejecting therespective budget, or any combination thereof.
 7. The system of claim 1,wherein each budget comprises at least one entry of data to include inthe budget plan.
 8. The system of claim 1, wherein the one or morehardware processors is configured to execute instructions from thenon-transitory memory to perform operations comprising providing thetask to the budget owner in a general list of tasks.
 9. The system ofclaim 1, wherein the one or more hardware processors is configured toexecute instructions from the non-transitory memory to performoperations comprising notifying the budget owner of the task uponpublishing the task.
 10. The system of claim 1, wherein the summarycomprises at least one of a comparison of the budget over a present timeperiod and another budget over a previous time period, variance inspending on specific items in the budget for the present time periodcompared to the previous time period, and an amount of budgets that havebeen approved compared to budgets that are still pending.
 11. Anon-transitory, computer readable medium comprising instructions,wherein the instructions are configured to be executed by a processor toperform operations comprising: generating a budget plan for a pluralityof budgets; generating a plurality of tasks for a plurality of budgetowners, wherein each task is associated with a respective budget andeach task is assigned to a respective budget owner, wherein theplurality of tasks are each used to manage progress towards approvingthe budget plan and to organize work associated with each of the budgetowners; submitting one or more budgets in the budget plan for approval;receiving approval of the one or more budgets in the budget plan; anddisplaying a summary based at least in part upon each budget of theplurality of budgets.
 12. The non-transitory, computer readable mediumof claim 11, wherein the instructions are configured to be executed by aprocessor to perform operations comprising forecasting the budget planbased on previous budgets using neural networks, a model, or anycombination thereof.
 13. The non-transitory, computer readable medium ofclaim 11, wherein the instructions are configured to be executed by aprocessor to perform operations comprising forecasting the budget planbased on
 14. The non-transitory, computer readable medium of claim 11,wherein generating a budget plan for a plurality of budgets comprisesgenerating a template to be used with the budget plan.
 15. Thenon-transitory, computer readable medium of claim 11, wherein theinstructions are configured to be executed by a processor to performoperations comprising maintaining a status of each task of the budgetplan.
 16. A method, comprising: generating a budget plan for a pluralityof budgets using a template; generating a plurality of tasks for aplurality of budget owners, wherein each task is associated with arespective budget and each task is assigned to a respective budgetowner, wherein the plurality of tasks are each used to manage progresstowards approving the budget plan and to organize work associated witheach of the budget owners; submitting one or more budgets of theplurality of budgets in the budget plan for approval; receiving approvalof the one or more budgets in the budget plan; and displaying a summarybased at least in part upon each budget of the plurality of budgets. 17.The method of claim 16, comprising updating a status associated with arespective task of a respective budget upon submitting the one or morebudgets in the budget plan, updating the status upon receiving approvalof the respective budget, or both.
 18. The method of claim 16,comprising notifying the budget owner of the task upon publishing thetask.
 19. The method of claim 16, comprising: receiving rejection of theone or more budgets in the budget plan; and updating the respectivetasks of the one or more budgets based upon the rejection.
 20. Themethod of claim 19, wherein the summary comprises at least one of acomparison of the budget over a present time period and another budgetover a previous time period, variance in spending on specific items inthe budget for the present time period compared to the previous timeperiod, and an amount of budgets that have been approved compared tobudgets that are still pending.